﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.Xml.Linq;

namespace _22._02.CS
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Button1_Click(object sender, EventArgs e)
        {
            // creazione del file XML:
            XDocument Contatti = new XDocument(
               new XDeclaration("1.0",
                  "UTF-16", "yes"),
               new XElement("Clienti",
                  new XElement("Cliente",
                     new XAttribute("id", "C01"),
                     new XElement("nome", "Mario"),
                     new XElement("cognome",
                        "De Ghetto"),
                     new XElement("riferimenti",
                        new XElement("indirizzo",
                        new XAttribute("tipo",
                           "e-mail"),
                           "mario@deghetto.it"),
                        new XAttribute("tipo", "url"),
                           "http://deghetto.wordpress.com")),
                  new XElement("Cliente",
                     new XAttribute("id", "C02"),
                     new XElement("nome",
                        "Giuseppe"),
                     new XElement("cognome",
                        "Verdi"),
                     new XElement("riferimenti",
                        new XElement("indirizzo",
                        new XAttribute("tipo",
                           "e-mail"), "giuseppe.verdi@teatro.it"),
                        new XAttribute("tipo", "url"),
                           "http://www.giuseppeverdi.it"))
                        ));
            Contatti.Save("indirizzi.xml");
        }

        private void Button2_Click(object sender, EventArgs e)
        {
            // interrogazione del file XML:
            // variabili locali per messaggio
            string messaggio = "";
            string NL = Environment.NewLine;
            // interrogazione
            var doc =
               XDocument.Load("indirizzi.xml").Descendants("Cliente");
            var elenco =
               from c in doc
               where c.Attribute("id").Value == "C02"
               select new
               {
                   Nome = c.Element("nome").Value,
                   Cognome = c.Element("cognome").Value
               };
            foreach (var Contatto in elenco)
            {
                messaggio += "Il contatto si chiama "
                   + Contatto.Nome + " "
                   + Contatto.Cognome + NL;
            }
            MessageBox.Show(messaggio);
        }
    }
}
